package cn.tedu.generic;

import java.util.ArrayList;
import java.util.List;

/**本类用于测试泛型的优点*/
public class TestGeneric1 {
    public static void main(String[] args) {
        /**1.泛型是怎么来的?--想要模拟数组的数据类型检查*/
        String[] a = new String[5];
        a[2] = "泡泡";
        a[4] = "涛涛";
        //数组的好处:在编译时期检查数据的类型，如果不是要求的类型就报错
        /**好处:普通for循环的好处就是可以控制循环的步长(怎么变化)*/

        List list = new ArrayList();
        list.add("夏夏");
        list.add(1);
        list.add(3.4);
        list.add('b');
        System.out.println(list);
        /**2.泛型通常与集合对象一起使用*/
        /**3.引入泛型--主要是想通过泛型来约束集合中存入的元素类型
         * 4.泛型的好处:可以把报错的时机提前,在编译期就报错，而不是运行后才抛出异常
         *  在向集合中添加元素时,会先检查元素的数据类型,不是要求的类型就编译失败*/
      List<String>list2 = new ArrayList();
      list2.add("江江");
      list2.add("博博");
//        list2.add(1);
//        list2.add(3.4);
//        list2.add('b');
        /**5.<type>--type的值怎么写
         * 具体的类型需要根据集合的业务自定义
         * 但是注意:type必须是引用类型，不可以是基本类型
         * 比如int需要写成对应包装类型Integer*/
        List <Integer> list3 = new ArrayList();
        list3.add(100);
        list3.add(200);
    }
}
